Main goals: Distractionless writing + custom design + frictionless publishing.
Important disclaimer: This solution will not appeal to most people as it requires adequate coding and DevOps knowledge.
I wanted to create a system that would allow a frictionless writing experience. Such, that would require as little steps as possible to ..................
I’ve tried multiple systems before, mostly content management systems (CMSs). Despite their „portability” (meaning that you can add or edit content from whatever device you want) there was a central component missing. Revising and editing content was a nightmare. The content was always out of sync. If you attempted to edit your blog post using your CMS system the post was always out of sync.
In reality, nobody uses a CMS for content creation. Writing content in a dedicated application is far more convenient. Nowadays text editors (like Microsoft Word or Apple Notes) are used on a daily basis and everybody is accustomed to them.
In order to create a solution, we first must dissect the problem using first principle thinking: Imagine a bare-bones system that would allow you to publish your writing to the internet. In such scenario:
- You create a folder on your desktop
- You open a text editor and write a blog post
- You save the document
- The document gets published to your blog
- After a while you use your text editor to revise a few typos and save the file again
- The new version is automatically updated
How the solution looks like using CMS (assuming you have installed one):
- You write a blog post on your computer
- You copy and paste the blog to your CMS
- You publish the blog post
- You fix a typo and add a few lines to your blog post using the CMS
- You forget about that blog post for a few weeks.
- You want to add a new paragraph to your blog using your text editor
- Now you don’t remember if you have manually synced the file
No sync was available to me Now I edit only in Obsidian. No changes are made via Github directly or via CMS in order to avoid synchronization problems.
Designer + Coder + Writer (wannabe)
How it looks on the outside: Obsidian → Blog Under the hood: https://excalidraw.com/#json=l0ROAcSzmujyR3V9Y09E7,pFRXzjqrA-mDOYXtckk68g
Prerequisites
- Obsidian
- Enveloppe Plugin
- Astro.js
- Github Repo
- CloudFlare Pages
- Tina CMS?
Let’s go over the components step-by-step:
Obsidian – Serves as a central writing hub where all notes and writings are collected. It is a „fancy” markdown (.md) editor Enveloppe Plugin – syncs selected notes to a GitHub Repository Templater Plugin – required for frontmatter GitHub – an essential tool for all developers where you can remotely host your code. Astro – a framework upon which the blog is created CloudFlare Pages – where the site is hosted
Content Creation
Content is written in Obsidian. I found it to be the most comfortable environment to write and take notes in. With some adjustments you can have a distractionless writing environment. (check out iA Writer).
Why not use Obsidian Publish?
That solution could have saved me months of my inconsistent development. One thing was missing, though – the design. I was not a fan of the standard Obsidian Publish.